package com.whfc.wxmp.api.sys.service;

import com.whfc.fuum.dto.WxRuleDTO;
import com.whfc.fuum.dto.WxUserDTO;
import com.whfc.fuum.entity.WxUser;
import com.whfc.fuum.param.WxUserParam;
import com.whfc.wxmp.dto.UserDetailDTO;

import java.util.List;

/**
 * @author qzexing
 * @version 1.0
 * @date 2020-12-12 17:24
 */
public interface WxUsersService {

    /**
     * 根据微信用户ID查找微信用户
     *
     * @param wxUserId 微信用户ID
     * @return 微信用户
     */
    WxUserDTO getUserById(Integer wxUserId);

    /**
     * 更新微信用户名称
     *
     * @param loginUser 微信用户
     * @param name      名称
     */
    void updateUserName(WxUser loginUser, String name);

    /**
     * 更新用户手机号
     *
     * @param loginUser 微信用户
     * @param phone     手机
     * @param code      验证码
     */
    void updateUserPhone(WxUser loginUser, String phone, String code);

    /**
     * 获取微信用户权限列表
     *
     * @param loginUser 微信用户
     * @return 权限列表
     */
    List<WxRuleDTO> getUserRuleList(WxUser loginUser);

    /**
     * 获取微信用户权限列表
     *
     * @param loginUser 微信用户
     * @param deptId    组织机构ID
     * @return 权限列表
     */
    List<WxRuleDTO> getUserRuleList(WxUser loginUser, Integer deptId);

    /**
     * 修改用户信息(昵称/头像/密码)
     *
     * @param param
     * @return
     */
    void editUserInfo(WxUserParam param);

    /**
     * 我的(项目)详情
     *
     * @param deptId
     * @param wxUserId
     * @param phone
     * @return
     */
    UserDetailDTO getPrjDetail(Integer deptId, Integer wxUserId, String phone);

}
